package com.hd123.rumba.gwt.widget2e.client.dialog;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * 带筛选功能的{@link RBrowserDialog}
 * 的回调，这是RBrowserCallback和RFilterCallback两个接口的合并，便于实现者使用。
 * 本身并无新增的方法 。
 * <p>
 * 在{@link RFilterCallback#onQuery()} 的实现中，实现者要做的事情是根据用户在界面上输入的
 * 内容构造QueryFilter对象或任何类似的内存对象，以便在
 * {@link RBrowserCallback#fetchData(int, int, String, String, AsyncCallback)}
 * 中使用这个筛选对象。 实现者不需要在这里执行表格刷新动作。
 * {@link RFilterCallback#onQuery()} 会在查询面板的查询按钮
 * 被点击或者查询对话框的确定按钮被点击时触发。
 * <p>
 * 另外需要说明的是，{@link RFilterCallback#onQuery()}
 * 不是必须实现的，实现者也可给出空实现，然后在
 * {@link RBrowserCallback#fetchData(int, int, AsyncCallback)}
 * 中在进行构造QueryFilter的工作，
 * 这样做的结果也是等价的，但<b>缺点</b>是这些代码在表格的每次翻页或者点击排序时都会被执行，效率很低。
 * 
 * @author LiQi
 * 
 */
public interface RBrowserWithFilterCallback extends RBrowserCallback, RFilterCallback {
}
